/*
 * CasesOutput.h
 *
 *  Created on: 27/11/2011
 *      Author: godinho
 */

#ifndef CASESOUTPUT_H_
#define CASESOUTPUT_H_

#include <string>
#include <vector>
#include <fstream>
#include <queue>

using namespace std;

class Case;

class CasesOutput {
public:
	CasesOutput(string fileName);
	virtual ~CasesOutput();

	void open();

	void close();

	void appendGeneration(int generationId, vector<Case*> generation);

private:

	void appendCase(Case* c);

	void printTabs();

	void otag();

	void ctag();

private:
	string mFileName;
	ofstream* mOut;
	int depth;
};

#endif /* CASESOUTPUT_H_ */
